package com.ty.bean;

import cn.hutool.json.JSON;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import nonapi.io.github.classgraph.json.Id;

import java.util.List;

@ApiModel("销售订单")
@Data
public class SaleOrder {
    @ApiModelProperty(value = "", hidden = true)
    private Integer id;
    /**
     * 销售人员
     */
    @ApiModelProperty(value = "销售人员", hidden = true)
    private Integer salesId;
    /**
     * 快递方式: [agent-货代, self-客户自己的快递]
     */
    @ApiModelProperty(value = "快递方式: [agent-货代, self-客户自己的快递]", notes = "")
    private String expressMode;
    /**
     * 客户询价的询价单号
     */
    @ApiModelProperty(value = "客户询价的询价单号", notes = "")
    private String customerInquirySn;
    /**
     * 询价客户ID
     */
    @ApiModelProperty(value = "询价客户ID", notes = "")
    private Integer customerId;


    @ApiModelProperty(value = "客户名称")
    String customerName;

    /**
     * 客户邮箱
     */
    @ApiModelProperty(value = "客户邮箱", notes = "")
    private String customerEmail;
    /**
     * 客户手机号
     */
    @ApiModelProperty(value = "客户手机号", notes = "")
    private String customerMobile;
    /**
     * 客户公司电话
     */
    @ApiModelProperty(value = "客户公司电话", notes = "")
    private String customerCompanyMobile;
    /**
     * 订单编号
     */
    @ApiModelProperty(value = "订单编号", hidden = true)
    private String sn;
    /**
     * PO编号
     */
    @ApiModelProperty(value = "PO编号", notes = "")
    private String poNumber;
    /**
     * 定金日期
     */
    @ApiModelProperty(value = "定金日期", notes = "")
    private String depositDate;
    /**
     * 定金比例
     */
    @ApiModelProperty(value = "定金比例", notes = "")
    private Integer depositRatio;
    /**
     * 收款银行
     */
    @ApiModelProperty(value = "收款银行", notes = "")
    private String receivingBank;
    /**
     * 币种
     */
    @ApiModelProperty(value = "币种", notes = "")
    private String currency;
    /**
     * 定金支付水单金额
     */
    @ApiModelProperty(value = "定金支付水单金额", notes = "")
    private Double amountOrMemo;
    /**
     * 未付余款金额
     */
    @ApiModelProperty(value = "未付余款金额", notes = "")
    private Double balanceAmount;
    /**
     * 订单类型: [new-新单,continue-续单,user-根据用户确认]
     */
    @ApiModelProperty(value = "订单类型: [new-新单,continue-续单,user-根据用户确认]", notes = "")
    private String orderType;
    /**
     * 询价日期
     */
    @ApiModelProperty(value = "询价日期", notes = "")
    private Integer inquiryDate;
    /**
     * 照片素材
     */
    @ApiModelProperty(value = "照片素材", notes = "")
    private String photoMetrial;
    /**
     * 成交条款及运费
     */
    @ApiModelProperty(value = "成交条款及运费", notes = "")
    private String termsAndFreight;
    /**
     * 折扣
     */
    @ApiModelProperty(value = "折扣", notes = "")
    private String discount;
    /**
     * 完工天数
     */
    @ApiModelProperty(value = "完工天数", notes = "")
    private String daysOfCompletion;
    /**
     * 付款条件
     */
    @ApiModelProperty(value = "付款条件", notes = "")
    private String termsOfPayment;
    /**
     * 剩余交期
     */
    @ApiModelProperty(value = "剩余交期", notes = "")
    private String rdp;
    /**
     * 预计完工日期
     */
    @ApiModelProperty(value = "预计完工日期", notes = "")
    private Integer eCompletionDate;
    /**
     * 设备类型
     */
    @ApiModelProperty(value = "设备类型", notes = "")
    private String equipmentType;


    /**
     * 提成
     */
    @ApiModelProperty(value = "提成", notes = "")
    private Double commission;
    /**
     * 首次提成
     */
    @ApiModelProperty(value = "首次提成", notes = "")
    private Double firstCommission;
    /**
     * 二次提成
     */
    @ApiModelProperty(value = "二次提成", notes = "")
    private Double secondCommission;
    /**
     * 应收金额
     */
    @ApiModelProperty(value = "应收金额", notes = "")
    private Double receivableAmount;
    /**
     * 应付金额
     */
    @ApiModelProperty(value = "应付金额", notes = "")
    private Double payableAmount;
    /**
     * 毛利润
     */
    @ApiModelProperty(value = "毛利润", notes = "")
    private Double grossProfit;
    /**
     * 毛利率
     */
    @ApiModelProperty(value = "毛利率", notes = "")
    private Float grossProfitMargin;


    @ApiModelProperty("销售订单技术要求")
    SaleOrderDetail saleOrderDetail;

    @ApiModelProperty("销售合同")
    SaleOrderContract saleOrderContract;

    @ApiModelProperty("销售合同产品")
    List<SaleOrderProduct> saleOrderProductList;

}

